var xmlHttp;
var xmlDoc;
var list;
var globalTipo;
/**
*Funcao que opera a pesquisa no xml.
*/
function srch()
{ 
	xmlHttp=GetXmlHttp();
	if (xmlHttp==null)
	{
		alert ("Seu browser não suporta AJAX!");
		return;
	} 
	var query = document.getElementById("queryTxt").value;
	var table = document.getElementById("result");
	xmlHttp.open("GET","petshop.xml",false); //abre objeto xmlHttp com url
	xmlHttp.send(null);// envia requisicao
	xmlDoc = xmlHttp.responseXML; //cria documento (conteudo do xml)
	var tipo = document.getElementById("comboBox").value;
	var elementos = getElements(tipo);
        resultados = srchByName(elementos,query, tipo);
	if(resultados != -1)
	{
		table.innerHTML = createTableResults(resultados,tipo);
	}else{
		table.innerHTML = "";
	}
	
	
}
/**
* Procura a query pelo nome e retorna os elementos encontrados.
*/
function srchByName(elements, query, tipo)
{
	var results = new Array();
	var j = 0;
	
		for(i = 0; i < elements.length; ++i)
		{
			var nome = elements[i].getElementsByTagName("nome")[0].firstChild.nodeValue;
			if(nome.toLowerCase().search(query.toLowerCase()) != -1)
			{
					results[j] = elements[i];
					++j;
				
			}
		}
	
	
	if(results.length == 0)
		return -1;
	else return results;
}
function createTableResults(results, tipo){
	var header;
	list = results;
	globalTipo = tipo;
	if(tipo == "produtos")
	{
		header =  "<tr> <th>Nome</th> <th> C&oacute;digo </th> <th> Detalhes </th> </tr>";
		var table = header;
		for(i = 0; i < results.length; ++i)
		{	
			var rowClass = "par";
			if(i%2 != 0)
				rowClass = "impar";
			table = table + "<tr class=\""+rowClass+"\"><td>"+results[i].getElementsByTagName("nome")[0].firstChild.nodeValue+"</td>"+
			"<td>"+results[i].getElementsByTagName("pcod")[0].firstChild.nodeValue+"</td>"+
			"<td><a  href=\"detalhes.html\" onClick=\"func("+i+")\" >Abrir detalhes</a></td></tr>";
		}
	}
	else if(tipo == "donos")
	{

		header =  "<tr> <th>Nome</th> <th> Id </th> <th> Detalhes </th> </tr>";
		var table = header;
		for(i = 0; i < results.length; ++i)
		{	
			var rowClass = "par";
			if(i%2 != 0)
				rowClass = "impar";
			table = table + "<tr class=\""+rowClass+"\"><td>"+results[i].getElementsByTagName("nome")[0].firstChild.nodeValue+"</td>"+
			"<td>"+results[i].getElementsByTagName("userid")[0].firstChild.nodeValue+"</td>"+
			"<td><a  href=\"detalhes.html\" onClick=\"func("+i+")\" >Abrir detalhes</a></td></tr>";
		}
	}
	else if(tipo == "animais")
	{
		header =  "<tr> <th>Nome</th> <th> Id </th> <th> Esp&eacute;cie </th> <th> Detalhes </th> </tr>";
		var table = header;
		for(i = 0; i < results.length; ++i)
		{	
			var rowClass = "par";
			if(i%2 != 0)
				rowClass = "impar";
			table = table + "<tr class=\""+rowClass+"\"> <td>"+results[i].getElementsByTagName("nome")[0].firstChild.nodeValue+"</td>"+
			"<td>"+results[i].getElementsByTagName("bixoid")[0].firstChild.nodeValue+"</td>"+
			"<td>"+results[i].getElementsByTagName("tipo")[0].firstChild.nodeValue+"</td>"+
			"<td><a  href=\"detalhes.html\" onClick=\"func("+i+")\" >Abrir detalhes</a></td></tr>";
			
		}
	}
	
	return table;

}
function getElements(tipo)
{
	var elements;
	var tagName;
	if(tipo == "produtos")
	{
		tagName = "prod";
	}
	else if(tipo == "donos")
	{
		tagName = "pessoa";
	}
	else if(tipo == "animais")
	{
		
		tagName = "animal";
	}
	elements =  xmlDoc.getElementsByTagName(tagName);
	return elements;
}


function GetXmlHttp()
{
	var xmlHttp=null;
	try
	{
		// Firefox, Safari, Opera
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer 7.0-
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	
	}
	return xmlHttp;
}

function func(i)
{
	localStorage.globalTipo = globalTipo;
	if(globalTipo == "animais")
	{
		localStorage.ID = list[i].getElementsByTagName("bixoid")[0].firstChild.nodeValue;

	}
	else if(globalTipo == "donos")
	{
		localStorage.ID = list[i].getElementsByTagName("userid")[0].firstChild.nodeValue;

	}
	else if(globalTipo == "produtos")
	{
		localStorage.ID = list[i].getElementsByTagName("pcod")[0].firstChild.nodeValue;
	}
}




